<?php

class LoginController extends Controller_Action 
{
	/**
	 *
	 * @var ProfileService
	 */
	private $profileService;
	
	/**
	 * @return ProfileService
	 */
	public function getProfileService() {
		if (!$this->profileService) {
			$this->profileService = ProfileService::getInstance();
		}
		return $this->profileService;
	}

	
	public function indexAction()
	{
		//d(ProfileService::encryptSha1Password("1"));
		//$this->_helper->sslSwitch();
	}
	
	public function loginAction()
	{
		//$this->_ajaxOnly();
		$login = $this->_getParam('login');
		$auth = $this->getProfileService()->authenticate($login, $this->_getParam('password'), true);
		if ($auth) {
			$result = array("success" => true);
		} else {
			$result = array("success" => false, "error" => "Неверная пара почта/пароль");
		}
		$this->view->result =$result;
	}
	
	
	public function remindPasswordAction()
	{
		$this->_ajaxOnly();
		$this->_disableView();

		$email = $this->_getParam('email');
		if (!$email) {
			$this->_setJson(array('error' => 'Адрес электронной почты не указан'));
			return;
		}
		$profileRow = $this->getProfileService()->getProfileRowByEmail($email);
		if (!$profileRow instanceof Db_Row ) {
			$this->_setJson(array('error' => 'Указанного вами адреса эл. почты не найдено среди пользователей портала www.kolizeo.ru'));
			return;
		}
		try {
			$newPass = $this->getProfileService()->generateRandomPassword();
			$this->getProfileService()->savePassword($profileRow, $newPass);
			$mail = new Zend_Mail('UTF-8');
			$mail->addTo($email);
			$mail->setFrom('support@cremmag.ru','Служба Creammag');
			$text = "Ваш новый пароль на сайте http://www.creammag.ru: $newPass. После получения вы можете сменить его в своем личном кабинете.";
			$mail->setBodyText($text);
			$mail->setSubject('Creammag.ru Восстановление пароля');
			$mail->send();

			$this->_setJson(array('result' => 'Новый пароль был выслан вам на адрес эл. почты '.$email.'. Сменить пароль вы можете в своем личном кабинете в настройках.'));
		} catch (Exception $e) {
			echo $e->getMessage();
		}
	}
}